18 research outputs found
Automatic Optimizations for Stream-based Monitoring Languages
Runtime monitors that are specified in a stream-based monitoring language
tend to be easier to understand, maintain, and reuse than those written in a
standard programming language. Because of their formal semantics, such
specification languages are also a natural choice for safety-critical
applications. Unlike for standard programming languages, there is, however, so
far very little support for automatic code optimization. In this paper, we
present the first collection of code transformations for the stream-based
monitoring language RTLola. We show that classic compiler optimizations, such
as Sparse Conditional Constant Propagation and Common Subexpression
Elimination, can be adapted to monitoring specifications. We also develop new
transformations -- Pacing Type Refinement and Filter Refinement -- which
exploit the specific modular structure of RTLola as well as the implementation
freedom afforded by a declarative specification language. We demonstrate the
significant impact of the code transformations on benchmarks from the
monitoring of unmanned aircraft systems (UAS).Comment: 20th International Conference on Runtime Verification (2020
Зміст та основні цілі стимулювання збуту на підприємстві
Стаття присвячена висвітленню сутності стимулювання підприємства, як важливої складової для забезпечення ефективного його функціонування, а також проаналізовано головні завдання, та основні переваги та недоліки заходів, які використовуються у системі стимулювання збуту. У статті розглянуто зміст стимулювання збуту продукції підприємства, його цілі та завдання. Виявлено, що стимулювання збуту ‒ це система короткострокових спонукальних заходів на тимчасовій або територіальній основі, що чинить вплив на трьох учасників ринку (споживачів, торгових посередників, торговий персонал), яка покликана стимулювати негайне здійснення покупки і прискорений збут продукції. Наведена характеристика сучасних засобів і прийомів стимулювання збуту. Розглянуто класифікацію стимулювання збуту продукції підприємства за виникненням і впливом на покупців. Дістали подальшого розвитку теоретичні положе ння стимулювання збуту, в тому числі визначення його основних напрямків.The article is devoted to highlighting the essence of stimulating the enterprise as an important component for ensuring its effective functioning, and also analyzed the main tasks and the main advantages and disadvantages of those used in the sales promotion system. The article deals with the content of sales’ promotion in the complex of product promotion, its goals and tasks. It is found that sales promotion is a system of short-term incentives on a temporary or territorial basis, affects three market part icipants (consumers, resellers, sales personnel), which is designed to stimulate immediate purchase and accelerated sales. The characteristic of modern means and methods of sales’ promotion is given. The classification of sales promotion in the work on occurrence and influence on buyers is described. The theoretical positions of sales’ promotion were furt her developed, the main directions of sales promotion were established
Refactoring GrPPI:Generic Refactoring for Generic Parallelism in C++
Funding: EU Horizon 2020 project, TeamPlay (https://www.teamplay-xh2020.eu), Grant Number 779882, UK EPSRC Discovery, grant number EP/P020631/1, and Madrid Regional Government, CABAHLA-CM (ConvergenciA Big dAta-Hpc: de Los sensores a las Aplicaciones) Grant Number S2018/TCS-4423.The Generic Reusable Parallel Pattern Interface (GrPPI) is a very useful abstraction over different parallel pattern libraries, allowing the programmer to write generic patterned parallel code that can easily be compiled to different backends such as FastFlow, OpenMP, Intel TBB and C++ threads. However, rewriting legacy code to use GrPPI still involves code transformations that can be highly non-trivial, especially for programmers who are not experts in parallelism. This paper describes software refactorings to semi-automatically introduce instances of GrPPI patterns into sequential C++ code, as well as safety checking static analysis mechanisms which verify that introducing patterns into the code does not introduce concurrency-related bugs such as race conditions. We demonstrate the refactorings and safety-checking mechanisms on four simple benchmark applications, showing that we are able to obtain, with little effort, GrPPI-based parallel versions that accomplish good speedups (comparable to those of manually-produced parallel versions) using different pattern backends.Publisher PDFPeer reviewe
A formally verified compiler back-end
This article describes the development and formal verification (proof of
semantic preservation) of a compiler back-end from Cminor (a simple imperative
intermediate language) to PowerPC assembly code, using the Coq proof assistant
both for programming the compiler and for proving its correctness. Such a
verified compiler is useful in the context of formal methods applied to the
certification of critical software: the verification of the compiler guarantees
that the safety properties proved on the source code hold for the executable
compiled code as well
Transforming flow information during code optimization for timing analysis
The steadily growing embedded-systems market comprises many application domains in which real-time constraints must be satisfied. To guarantee that these constraints are met, the analysis of the worst-case execution time (WCET) of software components is mandatory. In general WCET analysis needs additional control-flow information, which may be provided manually by the user or calculated automatically by program analysis. For flexibility and simplicity reasons it is desirable to specify the flow information at the same level at which the program is developed, i.e., at the source level. In contrast, to obtain precise WCET bounds the WCET analysis has to be performed at machine-code level. Mapping and transforming the flow information from the source-level down to the machine code, where flow information is used in the WCET analysis, is challenging, even more so if the compiler generates highly optimized code. In this article we present a method for transforming flow information from source code to machine code. To obtain a mapping that is safe and accurate, flow information is transformed in parallel to code transformations performed by an optimizing compiler. This mapping is not only useful for transforming manual code annotations but also if platform-independent flow information is automatically calculated at the source level. We show that our method can be applied to every type of semantics-preserving code transformation. The precision of this flow-information transformation allows its users to calculate tight WCET bounds.Peer reviewe